Swagger2 注解说明(全) - nomejin123的博客 - CSDN博客

创建时间:2019/10/22 14:03
来源:https://blog.csdn.net/nomejin123/article/details/100101377


 

1、swagger2 注解整体说明

用于controller类上:

注解 说明
@Api 对请求类的说明

用于方法上面(说明参数的含义):

注解 说明
@ApiOperation 方法的说明
@ApiImplicitParams、@ApiImplicitParam 方法的参数的说明;@ApiImplicitParams 用于指定单个参数的说明

用于方法上面(返回参数或对象的说明):

注解 说明
@ApiResponses、@ApiResponse 方法返回值的说明 ;@ApiResponses 用于指定单个参数的说明

对象类:

注解 说明
@ApiModel 用在JavaBean类上,说明JavaBean的 用途
@ApiModelProperty 用在JavaBean类的属性上面,说明此属性的的含议

2、@Api:请求类的说明

  1. 1
    @Api:放在 请求的类上,与 @Controller 并列,说明类的作用,如用户模块,订单类等。
  2. 2
    tags="说明该类的作用"
  3. 3
    value="该参数没什么意义,所以不需要配置"

示例:

  1. 1
    @Api(tags="订单模块")
  2. 2
    @Controller
  3. 3
    public class OrderController {
  4. 4
  5. 5
    }

@Api 其它属性配置:

属性名称 备注
value url的路径值
tags 如果设置这个值、value的值会被覆盖
description 对api资源的描述
basePath 基本路径
position 如果配置多个Api 想改变显示的顺序位置
produces 如, “application/json, application/xml”
consumes 如, “application/json, application/xml”
protocols 协议类型,如: http, https, ws, wss.
authorizations 高级特性认证时配置
hidden 配置为true ,将在文档中隐藏

3、@ApiOperation:方法的说明

  1. 1
    @ApiOperation"用在请求的方法上,说明方法的作用"
  2. 2
    value="说明方法的作用"
  3. 3
    notes="方法的备注说明"

3.1、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明

  1. 1
    @ApiImplicitParams:用在请求的方法上,包含一组参数说明
  2. 2
    @ApiImplicitParam:对单个参数的说明
  3. 3
    name:参数名
  4. 4
    value:参数的汉字说明、解释
  5. 5
    required:参数是否必须传
  6. 6
    paramType:参数放在哪个地方
  7. 7
    · header --> 请求参数的获取:@RequestHeader
  8. 8
    · query --> 请求参数的获取:@RequestParam
  9. 9
    · path(用于restful接口)--> 请求参数的获取:@PathVariable
  10. 10
    · body(请求体)--> @RequestBody User user
  11. 11
    · form(普通表单提交)
  12. 12
    dataType:参数类型,默认String,其它值dataType="Integer"
  13. 13
    defaultValue:参数的默认值

示列:

  1. 1
    @Api(tags="用户模块")
  2. 2
    @Controller
  3. 3
    public class UserController {
  4. 4
  5. 5
    @ApiOperation(value="用户登录",notes="随边说点啥")
  6. 6
    @ApiImplicitParams({
  7. 7
    @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
  8. 8
    @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
  9. 9
    @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
  10. 10
    })
  11. 11
    @PostMapping("/login")
  12. 12
    public JsonResult login(@RequestParam String mobile, @RequestParam String password,
  13. 13
    @RequestParam Integer age){
  14. 14
    //...
  15. 15
    return JsonResult.ok(map);
  16. 16
    }
  17. 17
    }

4、@ApiResponses、@ApiResponse:方法返回值的说明

  1. 1
    @ApiResponses:方法返回对象的说明
  2. 2
    @ApiResponse:每个参数的说明
  3. 3
    code:数字,例如400
  4. 4
    message:信息,例如"请求参数没填好"
  5. 5
    response:抛出异常的类

示例:

  1. 1
    @Api(tags="用户模块")
  2. 2
    @Controller
  3. 3
    public class UserController {
  4. 4
  5. 5
    @ApiOperation("获取用户信息")
  6. 6
    @ApiImplicitParams({
  7. 7
    @ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户Id")
  8. 8
    })
  9. 9
    @ApiResponses({
  10. 10
    @ApiResponse(code = 400, message = "请求参数没填好"),
  11. 11
    @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
  12. 12
    })
  13. 13
    @ResponseBody
  14. 14
    @RequestMapping("/list")
  15. 15
    public JsonResult list(@RequestParam String userId) {
  16. 16
    ...
  17. 17
    return JsonResult.ok().put("page", pageUtil);
  18. 18
    }
  19. 19
    }

5、@ApiModel:用于JavaBean上面,表示一个JavaBean(如:响应数据)的信息

  1. 1
    @ApiModel:用于JavaBean的类上面,表示此 JavaBean 整体的信息
  2. 2
    (这种一般用在post创建的时候,使用 @RequestBody 这样的场景,
  3. 3
    请求参数无法使用 @ApiImplicitParam 注解进行描述的时候 )

5.1、@ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义

示例:

  1. 1
    @ApiModel(description= "返回响应数据")
  2. 2
    public class RestMessage implements Serializable{
  3. 3
  4. 4
    @ApiModelProperty(value = "是否成功")
  5. 5
    private boolean success=true;
  6. 6
    @ApiModelProperty(value = "返回对象")
  7. 7
    private Object data;
  8. 8
    @ApiModelProperty(value = "错误编号")
  9. 9
    private Integer errCode;
  10. 10
    @ApiModelProperty(value = "错误信息")
  11. 11
    private String message;
  12. 12
  13. 13
    / getter/setter 略/
  14. 14
    }

http://localhost:5680/zxmall/swagger-ui.html</a></p>

这里写图片描述

文章最后发布于: 2019-08-27 15:58:43